/**
 * 
 */
package com.finalist.dao;

import java.util.List;

import com.finalist.entity.InvoiceTitle;
import com.finalist.entity.InvoiceTitle.InvoiceType;
import com.finalist.entity.InvoiceTitle.SelectStatus;

/**
 * Dao-发票台头
 * 
 * @author pengyb
 *
 */
public interface InvoiceTitleDao extends BaseDao<InvoiceTitle, Long>
{
    /**
     * 按用户编号查询发票抬头信息
     * @param memberId 用户编号
     * @return
     */
    List<InvoiceTitle> findByUserId(Long memberId);

    /**
     * 根据用户编号修改发票抬头选择状态为已选择的为未选择
     * @param memberId 用户编号
     * @param id
     */
    void updateSelectStatus(Long memberId);

    /**
     * 根据编号修改某抬头的选择状态
     * @param id 编号
     * @param selectStatus 选择状态
     */
    void updateSelectStatusById(Long id, SelectStatus selectStatus);

    /**
     * 根据用户编号及发票类型和抬头判断改抬头是否存在
     * @param memberId 用户编号
     * @param invoiceType 发票类型
     * @param title 发票抬头
     * @return
     */
    InvoiceTitle findByTypeAndTitle(Long memberId, InvoiceType invoiceType, String title);
}
